le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
mod(x, 0) → modZeroErro
mod(x, s(y)) → modIter(x, s(y), 0, 0)
modIter(x, s(y), z, u) → if(le(x, z), x, s(y), z, u)
if(true, x, y, z, u) → u
if(false, x, y, z, u) → if2(le(y, s(u)), x, y, s(z), s(u))
if2(false, x, y, z, u) → modIter(x, y, z, u)
if2(true, x, y, z, u) → modIter(x, y, z, 0)
↳ QTRS
↳ Overlay + Local Confluence
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
mod(x, 0) → modZeroErro
mod(x, s(y)) → modIter(x, s(y), 0, 0)
modIter(x, s(y), z, u) → if(le(x, z), x, s(y), z, u)
if(true, x, y, z, u) → u
if(false, x, y, z, u) → if2(le(y, s(u)), x, y, s(z), s(u))
if2(false, x, y, z, u) → modIter(x, y, z, u)
if2(true, x, y, z, u) → modIter(x, y, z, 0)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
mod(x, 0) → modZeroErro
mod(x, s(y)) → modIter(x, s(y), 0, 0)
modIter(x, s(y), z, u) → if(le(x, z), x, s(y), z, u)
if(true, x, y, z, u) → u
if(false, x, y, z, u) → if2(le(y, s(u)), x, y, s(z), s(u))
if2(false, x, y, z, u) → modIter(x, y, z, u)
if2(true, x, y, z, u) → modIter(x, y, z, 0)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
mod(x0, 0)
mod(x0, s(x1))
modIter(x0, s(x1), x2, x3)
if(true, x0, x1, x2, x3)
if(false, x0, x1, x2, x3)
if2(false, x0, x1, x2, x3)
if2(true, x0, x1, x2, x3)
IF2(true, x, y, z, u) → MODITER(x, y, z, 0)
IF(false, x, y, z, u) → LE(y, s(u))
MODITER(x, s(y), z, u) → IF(le(x, z), x, s(y), z, u)
IF(false, x, y, z, u) → IF2(le(y, s(u)), x, y, s(z), s(u))
IF2(false, x, y, z, u) → MODITER(x, y, z, u)
MODITER(x, s(y), z, u) → LE(x, z)
MOD(x, s(y)) → MODITER(x, s(y), 0, 0)
LE(s(x), s(y)) → LE(x, y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
mod(x, 0) → modZeroErro
mod(x, s(y)) → modIter(x, s(y), 0, 0)
modIter(x, s(y), z, u) → if(le(x, z), x, s(y), z, u)
if(true, x, y, z, u) → u
if(false, x, y, z, u) → if2(le(y, s(u)), x, y, s(z), s(u))
if2(false, x, y, z, u) → modIter(x, y, z, u)
if2(true, x, y, z, u) → modIter(x, y, z, 0)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
mod(x0, 0)
mod(x0, s(x1))
modIter(x0, s(x1), x2, x3)
if(true, x0, x1, x2, x3)
if(false, x0, x1, x2, x3)
if2(false, x0, x1, x2, x3)
if2(true, x0, x1, x2, x3)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
IF2(true, x, y, z, u) → MODITER(x, y, z, 0)
IF(false, x, y, z, u) → LE(y, s(u))
MODITER(x, s(y), z, u) → IF(le(x, z), x, s(y), z, u)
IF(false, x, y, z, u) → IF2(le(y, s(u)), x, y, s(z), s(u))
IF2(false, x, y, z, u) → MODITER(x, y, z, u)
MODITER(x, s(y), z, u) → LE(x, z)
MOD(x, s(y)) → MODITER(x, s(y), 0, 0)
LE(s(x), s(y)) → LE(x, y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
mod(x, 0) → modZeroErro
mod(x, s(y)) → modIter(x, s(y), 0, 0)
modIter(x, s(y), z, u) → if(le(x, z), x, s(y), z, u)
if(true, x, y, z, u) → u
if(false, x, y, z, u) → if2(le(y, s(u)), x, y, s(z), s(u))
if2(false, x, y, z, u) → modIter(x, y, z, u)
if2(true, x, y, z, u) → modIter(x, y, z, 0)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
mod(x0, 0)
mod(x0, s(x1))
modIter(x0, s(x1), x2, x3)
if(true, x0, x1, x2, x3)
if(false, x0, x1, x2, x3)
if2(false, x0, x1, x2, x3)
if2(true, x0, x1, x2, x3)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
LE(s(x), s(y)) → LE(x, y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
mod(x, 0) → modZeroErro
mod(x, s(y)) → modIter(x, s(y), 0, 0)
modIter(x, s(y), z, u) → if(le(x, z), x, s(y), z, u)
if(true, x, y, z, u) → u
if(false, x, y, z, u) → if2(le(y, s(u)), x, y, s(z), s(u))
if2(false, x, y, z, u) → modIter(x, y, z, u)
if2(true, x, y, z, u) → modIter(x, y, z, 0)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
mod(x0, 0)
mod(x0, s(x1))
modIter(x0, s(x1), x2, x3)
if(true, x0, x1, x2, x3)
if(false, x0, x1, x2, x3)
if2(false, x0, x1, x2, x3)
if2(true, x0, x1, x2, x3)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
LE(s(x), s(y)) → LE(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
mod(x0, 0)
mod(x0, s(x1))
modIter(x0, s(x1), x2, x3)
if(true, x0, x1, x2, x3)
if(false, x0, x1, x2, x3)
if2(false, x0, x1, x2, x3)
if2(true, x0, x1, x2, x3)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
mod(x0, 0)
mod(x0, s(x1))
modIter(x0, s(x1), x2, x3)
if(true, x0, x1, x2, x3)
if(false, x0, x1, x2, x3)
if2(false, x0, x1, x2, x3)
if2(true, x0, x1, x2, x3)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
LE(s(x), s(y)) → LE(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
IF2(true, x, y, z, u) → MODITER(x, y, z, 0)
MODITER(x, s(y), z, u) → IF(le(x, z), x, s(y), z, u)
IF(false, x, y, z, u) → IF2(le(y, s(u)), x, y, s(z), s(u))
IF2(false, x, y, z, u) → MODITER(x, y, z, u)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
mod(x, 0) → modZeroErro
mod(x, s(y)) → modIter(x, s(y), 0, 0)
modIter(x, s(y), z, u) → if(le(x, z), x, s(y), z, u)
if(true, x, y, z, u) → u
if(false, x, y, z, u) → if2(le(y, s(u)), x, y, s(z), s(u))
if2(false, x, y, z, u) → modIter(x, y, z, u)
if2(true, x, y, z, u) → modIter(x, y, z, 0)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
mod(x0, 0)
mod(x0, s(x1))
modIter(x0, s(x1), x2, x3)
if(true, x0, x1, x2, x3)
if(false, x0, x1, x2, x3)
if2(false, x0, x1, x2, x3)
if2(true, x0, x1, x2, x3)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
IF2(true, x, y, z, u) → MODITER(x, y, z, 0)
MODITER(x, s(y), z, u) → IF(le(x, z), x, s(y), z, u)
IF(false, x, y, z, u) → IF2(le(y, s(u)), x, y, s(z), s(u))
IF2(false, x, y, z, u) → MODITER(x, y, z, u)
le(0, y) → true
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
mod(x0, 0)
mod(x0, s(x1))
modIter(x0, s(x1), x2, x3)
if(true, x0, x1, x2, x3)
if(false, x0, x1, x2, x3)
if2(false, x0, x1, x2, x3)
if2(true, x0, x1, x2, x3)
mod(x0, 0)
mod(x0, s(x1))
modIter(x0, s(x1), x2, x3)
if(true, x0, x1, x2, x3)
if(false, x0, x1, x2, x3)
if2(false, x0, x1, x2, x3)
if2(true, x0, x1, x2, x3)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
IF2(true, x, y, z, u) → MODITER(x, y, z, 0)
MODITER(x, s(y), z, u) → IF(le(x, z), x, s(y), z, u)
IF(false, x, y, z, u) → IF2(le(y, s(u)), x, y, s(z), s(u))
IF2(false, x, y, z, u) → MODITER(x, y, z, u)
le(0, y) → true
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
(1) (IF2(le(x9, s(x11)), x8, x9, s(x10), s(x11))=IF2(true, x12, x13, x14, x15) ⇒ IF2(true, x12, x13, x14, x15)≥MODITER(x12, x13, x14, 0))
(2) (s(x11)=x84∧le(x9, x84)=true ⇒ IF2(true, x8, x9, s(x10), s(x11))≥MODITER(x8, x9, s(x10), 0))
(3) (true=true∧s(x11)=x85 ⇒ IF2(true, x8, 0, s(x10), s(x11))≥MODITER(x8, 0, s(x10), 0))
(4) (le(x86, x87)=true∧s(x11)=s(x87)∧(∀x88,x89,x90:le(x86, x87)=true∧s(x88)=x87 ⇒ IF2(true, x89, x86, s(x90), s(x88))≥MODITER(x89, x86, s(x90), 0)) ⇒ IF2(true, x8, s(x86), s(x10), s(x11))≥MODITER(x8, s(x86), s(x10), 0))
(5) (IF2(true, x8, 0, s(x10), s(x11))≥MODITER(x8, 0, s(x10), 0))
(6) (le(x86, x87)=true ⇒ IF2(true, x8, s(x86), s(x10), s(x87))≥MODITER(x8, s(x86), s(x10), 0))
(7) (true=true ⇒ IF2(true, x8, s(0), s(x10), s(x92))≥MODITER(x8, s(0), s(x10), 0))
(8) (le(x93, x94)=true∧(∀x95,x96:le(x93, x94)=true ⇒ IF2(true, x95, s(x93), s(x96), s(x94))≥MODITER(x95, s(x93), s(x96), 0)) ⇒ IF2(true, x8, s(s(x93)), s(x10), s(s(x94)))≥MODITER(x8, s(s(x93)), s(x10), 0))
(9) (IF2(true, x8, s(0), s(x10), s(x92))≥MODITER(x8, s(0), s(x10), 0))
(10) (IF2(true, x8, s(x93), s(x10), s(x94))≥MODITER(x8, s(x93), s(x10), 0) ⇒ IF2(true, x8, s(s(x93)), s(x10), s(s(x94)))≥MODITER(x8, s(s(x93)), s(x10), 0))
(11) (MODITER(x20, x21, x22, 0)=MODITER(x24, s(x25), x26, x27) ⇒ MODITER(x24, s(x25), x26, x27)≥IF(le(x24, x26), x24, s(x25), x26, x27))
(12) (MODITER(x20, s(x25), x22, 0)≥IF(le(x20, x22), x20, s(x25), x22, 0))
(13) (MODITER(x36, x37, x38, x39)=MODITER(x40, s(x41), x42, x43) ⇒ MODITER(x40, s(x41), x42, x43)≥IF(le(x40, x42), x40, s(x41), x42, x43))
(14) (MODITER(x36, s(x41), x38, x39)≥IF(le(x36, x38), x36, s(x41), x38, x39))
(15) (IF(le(x48, x50), x48, s(x49), x50, x51)=IF(false, x52, x53, x54, x55) ⇒ IF(false, x52, x53, x54, x55)≥IF2(le(x53, s(x55)), x52, x53, s(x54), s(x55)))
(16) (le(x48, x50)=false ⇒ IF(false, x48, s(x49), x50, x51)≥IF2(le(s(x49), s(x51)), x48, s(x49), s(x50), s(x51)))
(17) (le(x99, x100)=false∧(∀x101,x102:le(x99, x100)=false ⇒ IF(false, x99, s(x101), x100, x102)≥IF2(le(s(x101), s(x102)), x99, s(x101), s(x100), s(x102))) ⇒ IF(false, s(x99), s(x49), s(x100), x51)≥IF2(le(s(x49), s(x51)), s(x99), s(x49), s(s(x100)), s(x51)))
(18) (false=false ⇒ IF(false, s(x103), s(x49), 0, x51)≥IF2(le(s(x49), s(x51)), s(x103), s(x49), s(0), s(x51)))
(19) (IF(false, x99, s(x49), x100, x51)≥IF2(le(s(x49), s(x51)), x99, s(x49), s(x100), s(x51)) ⇒ IF(false, s(x99), s(x49), s(x100), x51)≥IF2(le(s(x49), s(x51)), s(x99), s(x49), s(s(x100)), s(x51)))
(20) (IF(false, s(x103), s(x49), 0, x51)≥IF2(le(s(x49), s(x51)), s(x103), s(x49), s(0), s(x51)))
(21) (IF2(le(x73, s(x75)), x72, x73, s(x74), s(x75))=IF2(false, x76, x77, x78, x79) ⇒ IF2(false, x76, x77, x78, x79)≥MODITER(x76, x77, x78, x79))
(22) (s(x75)=x104∧le(x73, x104)=false ⇒ IF2(false, x72, x73, s(x74), s(x75))≥MODITER(x72, x73, s(x74), s(x75)))
(23) (le(x106, x107)=false∧s(x75)=s(x107)∧(∀x108,x109,x110:le(x106, x107)=false∧s(x108)=x107 ⇒ IF2(false, x109, x106, s(x110), s(x108))≥MODITER(x109, x106, s(x110), s(x108))) ⇒ IF2(false, x72, s(x106), s(x74), s(x75))≥MODITER(x72, s(x106), s(x74), s(x75)))
(24) (false=false∧s(x75)=0 ⇒ IF2(false, x72, s(x111), s(x74), s(x75))≥MODITER(x72, s(x111), s(x74), s(x75)))
(25) (le(x106, x107)=false ⇒ IF2(false, x72, s(x106), s(x74), s(x107))≥MODITER(x72, s(x106), s(x74), s(x107)))
(26) (le(x113, x114)=false∧(∀x115,x116:le(x113, x114)=false ⇒ IF2(false, x115, s(x113), s(x116), s(x114))≥MODITER(x115, s(x113), s(x116), s(x114))) ⇒ IF2(false, x72, s(s(x113)), s(x74), s(s(x114)))≥MODITER(x72, s(s(x113)), s(x74), s(s(x114))))
(27) (false=false ⇒ IF2(false, x72, s(s(x117)), s(x74), s(0))≥MODITER(x72, s(s(x117)), s(x74), s(0)))
(28) (IF2(false, x72, s(x113), s(x74), s(x114))≥MODITER(x72, s(x113), s(x74), s(x114)) ⇒ IF2(false, x72, s(s(x113)), s(x74), s(s(x114)))≥MODITER(x72, s(s(x113)), s(x74), s(s(x114))))
(29) (IF2(false, x72, s(s(x117)), s(x74), s(0))≥MODITER(x72, s(s(x117)), s(x74), s(0)))
POL(0) = 0
POL(IF(x1, x2, x3, x4, x5)) = 1 - x1 + x2 + x3 - x4 + x5
POL(IF2(x1, x2, x3, x4, x5)) = 1 - x1 + x2 + x3 - x4 + x5
POL(MODITER(x1, x2, x3, x4)) = 1 + x1 + x2 - x3 + x4
POL(c) = -1
POL(false) = 0
POL(le(x1, x2)) = 0
POL(s(x1)) = 1 + x1
POL(true) = 0
The following pairs are in Pbound:
IF2(true, x, y, z, u) → MODITER(x, y, z, 0)
The following rules are usable:
IF(false, x, y, z, u) → IF2(le(y, s(u)), x, y, s(z), s(u))
false → le(s(x), 0)
le(x, y) → le(s(x), s(y))
true → le(0, y)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ NonInfProof
↳ QDP
MODITER(x, s(y), z, u) → IF(le(x, z), x, s(y), z, u)
IF(false, x, y, z, u) → IF2(le(y, s(u)), x, y, s(z), s(u))
IF2(false, x, y, z, u) → MODITER(x, y, z, u)
le(0, y) → true
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
(1) (MODITER(x36, x37, x38, x39)=MODITER(x40, s(x41), x42, x43) ⇒ MODITER(x40, s(x41), x42, x43)≥IF(le(x40, x42), x40, s(x41), x42, x43))
(2) (MODITER(x36, s(x41), x38, x39)≥IF(le(x36, x38), x36, s(x41), x38, x39))
(3) (IF(le(x48, x50), x48, s(x49), x50, x51)=IF(false, x52, x53, x54, x55) ⇒ IF(false, x52, x53, x54, x55)≥IF2(le(x53, s(x55)), x52, x53, s(x54), s(x55)))
(4) (le(x48, x50)=false ⇒ IF(false, x48, s(x49), x50, x51)≥IF2(le(s(x49), s(x51)), x48, s(x49), s(x50), s(x51)))
(5) (le(x99, x100)=false∧(∀x101,x102:le(x99, x100)=false ⇒ IF(false, x99, s(x101), x100, x102)≥IF2(le(s(x101), s(x102)), x99, s(x101), s(x100), s(x102))) ⇒ IF(false, s(x99), s(x49), s(x100), x51)≥IF2(le(s(x49), s(x51)), s(x99), s(x49), s(s(x100)), s(x51)))
(6) (false=false ⇒ IF(false, s(x103), s(x49), 0, x51)≥IF2(le(s(x49), s(x51)), s(x103), s(x49), s(0), s(x51)))
(7) (IF(false, x99, s(x49), x100, x51)≥IF2(le(s(x49), s(x51)), x99, s(x49), s(x100), s(x51)) ⇒ IF(false, s(x99), s(x49), s(x100), x51)≥IF2(le(s(x49), s(x51)), s(x99), s(x49), s(s(x100)), s(x51)))
(8) (IF(false, s(x103), s(x49), 0, x51)≥IF2(le(s(x49), s(x51)), s(x103), s(x49), s(0), s(x51)))
(9) (IF2(le(x73, s(x75)), x72, x73, s(x74), s(x75))=IF2(false, x76, x77, x78, x79) ⇒ IF2(false, x76, x77, x78, x79)≥MODITER(x76, x77, x78, x79))
(10) (s(x75)=x104∧le(x73, x104)=false ⇒ IF2(false, x72, x73, s(x74), s(x75))≥MODITER(x72, x73, s(x74), s(x75)))
(11) (le(x106, x107)=false∧s(x75)=s(x107)∧(∀x108,x109,x110:le(x106, x107)=false∧s(x108)=x107 ⇒ IF2(false, x109, x106, s(x110), s(x108))≥MODITER(x109, x106, s(x110), s(x108))) ⇒ IF2(false, x72, s(x106), s(x74), s(x75))≥MODITER(x72, s(x106), s(x74), s(x75)))
(12) (false=false∧s(x75)=0 ⇒ IF2(false, x72, s(x111), s(x74), s(x75))≥MODITER(x72, s(x111), s(x74), s(x75)))
(13) (le(x106, x107)=false ⇒ IF2(false, x72, s(x106), s(x74), s(x107))≥MODITER(x72, s(x106), s(x74), s(x107)))
(14) (le(x113, x114)=false∧(∀x115,x116:le(x113, x114)=false ⇒ IF2(false, x115, s(x113), s(x116), s(x114))≥MODITER(x115, s(x113), s(x116), s(x114))) ⇒ IF2(false, x72, s(s(x113)), s(x74), s(s(x114)))≥MODITER(x72, s(s(x113)), s(x74), s(s(x114))))
(15) (false=false ⇒ IF2(false, x72, s(s(x117)), s(x74), s(0))≥MODITER(x72, s(s(x117)), s(x74), s(0)))
(16) (IF2(false, x72, s(x113), s(x74), s(x114))≥MODITER(x72, s(x113), s(x74), s(x114)) ⇒ IF2(false, x72, s(s(x113)), s(x74), s(s(x114)))≥MODITER(x72, s(s(x113)), s(x74), s(s(x114))))
(17) (IF2(false, x72, s(s(x117)), s(x74), s(0))≥MODITER(x72, s(s(x117)), s(x74), s(0)))
POL(0) = 0
POL(IF(x1, x2, x3, x4, x5)) = 1 + x2 + x3 - x4
POL(IF2(x1, x2, x3, x4, x5)) = 1 + x2 + x3 - x4
POL(MODITER(x1, x2, x3, x4)) = 1 + x1 + x2 - x3
POL(c) = -1
POL(false) = 0
POL(le(x1, x2)) = x1
POL(s(x1)) = 1 + x1
POL(true) = 0
The following pairs are in Pbound:
IF(false, x, y, z, u) → IF2(le(y, s(u)), x, y, s(z), s(u))
There are no usable rules
IF(false, x, y, z, u) → IF2(le(y, s(u)), x, y, s(z), s(u))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ NonInfProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
MODITER(x, s(y), z, u) → IF(le(x, z), x, s(y), z, u)
IF2(false, x, y, z, u) → MODITER(x, y, z, u)
le(0, y) → true
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ QDP
↳ DependencyGraphProof
IF2(true, x, y, z, u) → MODITER(x, y, z, 0)
MODITER(x, s(y), z, u) → IF(le(x, z), x, s(y), z, u)
IF2(false, x, y, z, u) → MODITER(x, y, z, u)
le(0, y) → true
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))